#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPluginLoader>
#include <QFileDialog>
#include <QPixmap>
#include <QImage>

#include "SettingManager.h"
#include "VarSetManager.h"
#include "CNV_IMG_ALGORITHM_INTERFACE.h"

#include "opencv2/opencv.hpp"

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

    //  //  设置 参数管理器指针      //  //
    void setSettingManagerPtr(OCTViewr2::SettingManager *ptr);

    //  //  设置 变量集管理器指针      //  //
    void setVarSetManagerPtr(OCTViewr2::VarSetManager *ptr);


    //  // 处理显示之前做的东东   //  //
    void doShowMisc();

signals:
    //  //弹出信息到 信息栏         //  //
    void toastInfo(QString info,QString color="black");

private slots:
    void on_BtnVarTool_clicked();

    void on_BtnTest1_clicked();

private:
    Ui::Widget *ui;

    //  // 设置 管理 指针     //  //
    OCTViewr2::SettingManager *m_settingManagerPtr;

    //  //  变量集管理器指针      //  //
    OCTViewr2::VarSetManager *m_VarSetManagerPtr;

    //  //原始波形数据 FFT转换为 可视图像的 算法插件  //  //
    OCTViewr2::IALGORITHM_CNV2IMG_INTERFACE *m_ialgorithm_cnv2imgPlugin;

    //  // 初始化 加载插件 //  //
    void initPlugin();

};

#endif // WIDGET_H
